The disclosure relates generally to methods and apparatus for configuring an integrated circuit and more specifically to methods and apparatus that use input/output pads or other pins of an integrated circuit for circuit or process configuration purposes.
Complex integrated circuits such as central processing units, graphics processing units, application specific integrated circuits (ASICs), digital signal processors and other integrated circuits often need to power up in a specific state depending on the application that the integrated circuit is being used in. Traditionally these integrated circuits have input/output (I/O) pads used for configuration purposes, where for example external tie-high or tie-low resistors are used on conductive pads to force core logic in an input logic state to be either a logic “1” or logic “0” so that during a chip reset condition the chip may be configured in a specific manner to configure the internal state of a circuit within the integrated circuit. Low speed general purpose input/output pins are typically used for this purpose. This type of I/O pad is sometimes referred to as a strap pad. The configuration information received from the strap pad is required before the integrated circuit comes out of reset such as before a BIOS can read in. General purpose ports can be used as strap pads before reset and can be used for other input/output signals after reset mode.
A problem arises in that the restrictions on the input/output pins during reset is such that the pins can tolerate being strapped high or low and nothing attached to the signals can overwrite the external tie-high or tie-low resistors which limits the use of the I/O pad during normal operation. For example, if an external pull up resistor or pull down resistor is connected to an I/O pin for purposes of the configuration logic, this still impacts the normal operating mode of the input/output pin since it has external resistors tied to it. Another problem is that the number of straps the integrated circuit can use is limited by the number of GPIOs required by the integrated circuit. Typically, one strap pad provides one configuration bit. If more strap pads are required, additional silicon area, packaging area and printed circuit board area could be wasted in order to accommodate the additional straps. To program an integrated circuit for configuration purposes, one input/output pin is used for one configuration bit. When the chip comes out of reset, it can read one bit per pin and configure the functions of the chip accordingly. By way of example, graphics processor units may use configuration bits to identify a display connector type that the GPU is connected with, the configuration bits can set default modes, set memory operation size and can be used to boot up transceiver driver settings and provide other configuration functionality.
It is also known to use dedicated configuration ports for an integrated circuit so the integrated circuit does not need to reuse the GPIO pins as configuration ports. However, each port only provides a single bit of configuration information.
Accordingly, a need exists for an improved method and apparatus for configuring an integrated circuit.